package com.vegetable.common.annotation;

import java.lang.annotation.*;

/**
 * 审批数据权限注解
 * 用于控制用户只能查看自己提交的审批
 * 财务部门可以查看全部审批数据
 * 
 * @author Qoder
 * @since 2025-10-21
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ApprovalDataPermission {
    
    /**
     * 数据权限类型
     */
    enum PermissionType {
        /**
         * 审批数据权限：普通用户只能看到自己提交的审批，财务部门可以看到全部
         */
        APPROVAL
    }
    
    /**
     * 权限类型
     */
    PermissionType type() default PermissionType.APPROVAL;
    
    /**
     * 需要过滤的参数类型
     * 对应方法参数中的PO对象类型
     */
    Class<?> filterParam() default Object.class;
}
